#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

// 前置声明
class QDockWidget;
class QTreeWidget;
class QTreeWidgetItem;
class QTextEdit;
class QTabWidget;

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget* parent = nullptr);
    ~MainWindow();

private slots:
    // 菜单和工具栏槽函数
    void newFile();
    void openFile();
    void saveFile();
    void undo();
    void redo();
    void cut();
    void copy();
    void paste();

    // 标签页管理槽函数
    void addNewTab();
    void closeCurrentTab();

private:
    // 创建界面组件的函数
    void createCentralWidget();
    void createProjectTreeDock();
    void createPropertyDock();
    void createMessageDock();
    void createMenusAndToolBars();
    void setupDockLayout();  // 新增：设置停靠窗口布局

    // 中心视图区域（带标签页）
    QTabWidget* centralTabWidget;

    // 工程树面板相关
    QDockWidget* projectDock;
    QTreeWidget* projectTree;
    QTreeWidgetItem* designItem;
    QTreeWidgetItem* simulationItem;

    // 属性面板相关
    QDockWidget* propertyDock;
    QTextEdit* propertyView;

    // 消息通知框相关
    QDockWidget* messageDock;
    QTextEdit* messageView;
};

#endif // MAINWINDOW_H